home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group00b.txt / 000113_icon-group-sender_Thu Oct 26 12:48:13 2000.msg < prev    next >
Internet Message Format  |  2001-01-03  |  3KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id e9QJlX701049
  4.     for icon-group-addresses; Thu, 26 Oct 2000 12:47:33 -0700 (MST)
  5. Message-Id: <200010261947.e9QJlX701049@baskerville.CS.Arizona.EDU>
  6. Date: Thu, 26 Oct 2000 09:00:05 -0700
  7. From: Steve Wampler <swampler@noao.edu>
  8. X-Accept-Language: en
  9. To: Bob Ardler <ardler@argonet.co.uk>
  10. CC: icon-group@cs.arizona.edu
  11. Subject: Re: Yet another Newbie question....
  12. Errors-To: icon-group-errors@cs.arizona.edu
  13. Status: RO
  14. Content-Length: 2754
  15.  
  16. Bob Ardler wrote:
  17. > Shamin is right in every respect; yet, as a permanent beginner I fell
  18. > to the earth twitching and frothing at that "natural" line. Neither
  19. > Griswold & Griswold nor Christopher (both excellent and friendly)
  20. > always help, say, a student coming from a conventional language who
  21. > wants to write a conventional 'if' statement and expects to find a
  22. > simple analogue for the predicates s/he's used to.
  23.  
  24. Yes, but...
  25.  
  26. This reminds of the (computer nerd) semi-joke "I can write FORTRAN in
  27. any language".  Advanced languages like Icon (and Smalltalk and Prolog
  28. and ...) are not "conventional".  Instead, they provide ways to approach
  29. problem solutions by thinking differently - which only works if you do
  30. think "differently".  By forcing these languages to match a conventional
  31. model you are losing most of the advantages that the language offers.
  32. In that case, why bother with learning the language?
  33.  
  34. Many (these days, perhaps most) students are seeing Icon as part of
  35. a "Programming Languages" course.  The primary purpose of such a course
  36. is not to learn the different ways semicolons are treated or the
  37. different symbols used to denote assignment.  The main reason for
  38. looking at different languages is to understand how a language can
  39. shape how you approach solving a problem.  Some languages actually
  40. make it easy to think about problems more "naturally" (note that this
  41. isn't the same a "conventionally" and may, in fact, vary with the
  42. problem domain).
  43.  
  44. For grins sometime, ask an algebra class how to express the concept
  45. that "X must be between 0 and 15, inclusive".  Then ask a group of
  46. students at the end of a course on C (or Java, or any of the conventional
  47. languages).  You could also ask a group of set theorists for another
  48. way to express the same concept.
  49.  
  50. If you ask the same question of a group of students who have just
  51. learned Icon, it would be a good thing if they did not give the
  52. same answer as the C students.  [It would be a *great* thing if they
  53. were then able to explain *why* Icon lets you express it the same
  54. way you're likely to see it written in "Math" and why C, Java, etc.
  55. *don't* let you express it that way.]
  56.  
  57. > G&G (The Icon Programming Language, see www.peer-to-peer.com) does
  58. > point out that member(X,x) requires X to be a set or table, and a
  59. > cset isn't a set. Both books also list the operations on csets (union
  60. > ++, intersection **, difference -- and complement ~), but I don't
  61. > know where or whether they explain that you have to make your own
  62. > cset analogue for member() using any() or not-empty intersection or
  63. > whatever.
  64.  
  65. This is very true.  In fact, I'd like to see member(), etc, also work
  66. with csets.
  67.  
  68.  
  69. --
  70. Steve Wampler-  SOLIS Project, National Solar Observatory
  71. swampler@noao.edu
  72.